Thrust Factor is a tight, punishing, movement based space shooter roguelite, loosely based on the classic arcade game Asteroids. The player avoids lasers, missiles and space rocks while battling bosses and gathering upgrade modules to improve their ship.
Design Goal
I wanted to modernize the retro game Asteroids. Apart from sound and graphics, I set out to improve four aspects:
Modernized controls
Faster-paced and more active gameplay
Better enemy AI
More progression and better replayability
I described the core player experience as high-risk, high-reward "glass cannon", demanding precision and rewarding mastery.
An early concept sketch, outling movement, enemy behaviour and health systems.
Early implementation of the mouse rotation system. Note the smoothing effect, which prevents instant 180 degree turns. Boosting significantly slows down turning, a balancing mechanic.
Player Controller
The first order of business was to establish the Three C's (Character, Camera, Controller) which each had to support the core player experience.
One important decision was to make the player only able to shoot in the direction they are flying, forcing them to always face the danger, using the mouse cursor to rotate.
This control scheme feels unusual at first, but it enables very precise movement and, according to playtesters, has a satisfyingly high skill ceiling.
Active Play
After adding asteroid enemies, I noticed a problem: just like in classic Asteroids, players remained stationary, practically turning the game into a turret sim.
Instead of bloating the game with new, unneccessary mechanics, I decided to work with the tools I had, and designed enemy AI that forces the player to use a more active playstyle.
Each of the three basic enemies, as well as the asteroids, play a specific role in getting the player moving.
Asteroids have a high probability of spawning with a force towards the player.
The Lancier locks onto the player, and if the lock isn't broken, fires a tracking missile which takes effort and skill to dodge.
The Firefly, the most basic enemy, fires lasers that can't be shot down. They have to be dodged.
Drones fire laserbeams across the screen from outside the player's viewport. The player makes the choice to either evade, or fly towards the drone and destroy it.
The player gets hit continuously. Bottom left: Shield, bottom right: Health.
Integer based HP scoring of enemies. Excerpt from enemy data excel sheet.
Less is more
Instead of health being a continuous scale, and damage being some arbitrary value, I opted for a tighter system with lower numbers: you have 3 health points, and the player deals 1 damage every time.
This system rewards precision, punishes carelessness, and is much easier to communicate!
No World Borders
My goal was to create a map without obtrusive boundries. Inspired by the "Blue Sphere" levels of Sonic Mania, I implemented a loop-around system. If an object is too far out of view, it loops back to the other side.
This system is so seamless, not a single playtester ever noticed!
An in-engine view of the game's viewport.
A flowchart showing the game broken down into separate loops, and how they relate to each other. Note the addition of the meta-loop (yellow).
Loops and Progression
There are three important gameplay loops at play. The addition of a meta loop, in this case buying permanent unlocks, was necesarry to give players concise and measureable goals to work towards in between runs.
I often break down gameplay systems like this, to make sure there are no holes in the design and to keep it consistent.
Difficulty vs Progression
The design pillars I established early on dictate Thrust Factor should be difficult and skill-based. The addition of permanent upgrades would clash with that idea. That's why unlocks do not simply make the player stronger:
Instead, they unlock new abilities, such as flares (defense against missiles), and their upgrade tree. It adds a layer of complexity and choice to the game.
1: The player buys the "Countermeasures" unlock in the menu. 2: The player chooses to upgrade it with "Auto Deploy". 3: The upgraded unlock in action.
Post Mortem
Turning Asteroids into Thrust Factor was incredibly fun and rewarding. The project taught me a lot about systems design, in particular the interaction between different game loops.
I didn't expect that the biggest challenge would be to get players to move around more. Some players still preferred to play more passively, which frustrated me at first. But I realized that the game supporting multiple viable playstyles is actually a good thing, and trying to force every player into a specific playstyle is counterproductive.
I haven't touched upon sound design and music, which I've put as least an equal amount of effort into designing and fine tuning as the rest, and I could dedicate another entire page to. You can listen to the soundtrack here.